import silenceUpdate from '@/uni_modules/rt-uni-update/js_sdk/silence-update.js' //引入静默更新
import {
	BASE_URL,
	BASE_HOST} from '@/utils/common.js'
export default async function getapk() {
	return new Promise((resolve, reject) => {
		let baseurl = BASE_URL + BASE_HOST;
		var server = baseurl + 'appupdate'; //检查更新地址 
		//#ifdef APP-PLUS 
		// 获取本地应用资源版本号
		plus.runtime.getProperty(plus.runtime.appid, (inf) => {
			let data = {
				appid: plus.runtime.appid,
				// version_type: uni.getSystemInfoSync().platform, //android或者ios
				version: inf.versionCode // 打包时manifest设置的版本号 
			};
			//获取服务器的版本号
			uni.request({
				method: "GET",
				url: server, //示例接口
				header: {
					backdoor: 1,
				},
				data,
				success: (res) => {
					console.log('res:',res);
					if (!res.data||res.statusCode!=200) {
						reject('fasle',res.data);
						return
					} else {
						resolve(true);
					}
					res.data.data = {
						// 版本更新内容 支持<br>自动换行
						describe: res.data.updatemsg,
						edition_url: res.data.pkgurl || res.data
						.wgturl, //apk、wgt包下载地址或者应用市场地址  安卓应用市场 market://details?id=xxxx 苹果store itms-apps://itunes.apple.com/cn/app/xxxxxx
						edition_force: 1, //是否强制更新 0代表否 1代表是
						package_type: res.data.pkgurl ? 0 :
						1, //0是整包升级（apk或者appstore或者安卓应用市场） 1是wgt升级
						edition_issue: 1, //是否发行  0否 1是 为了控制上架应用市场审核时不能弹出热更新框
						edition_number: res.data
						.version, //版本号 最重要的manifest里的版本号 （检查更新主要以服务器返回的edition_number版本号是否大于当前app的版本号来实现是否更新）
						edition_name: res.data.remark, // 版本名称 manifest里的版本名称
						edition_silence: 0 // 是否静默更新 0代表否 1代表是
					}
					//res.data.xxx根据后台返回的数据决定（我这里后端返回的是data），所以是res.data.data 
					//判断后台返回版本号是否大于当前应用版本号 && 是否发行 （上架应用市场时一定不能弹出更新提示）
					if (Number(res.data.data.edition_number) > Number(inf.versionCode) &&
						res
						.data.data.edition_issue == 1) {

						//如果是wgt升级，并且是静默更新 （注意！！！ 如果是手动检查新版本，就不用判断静默更新，请直接跳转更新页，不然点击检查新版本后会没反应）
						if (res.data.data.package_type == 1 && res.data.data
							.edition_silence == 1) {
							//调用静默更新方法 传入下载地址
							silenceUpdate(res.data.data.edition_url)

						} else {
							//跳转更新页面 （注意！！！如果pages.json第一页的代码里有一打开就跳转其他页面的操作，
							// 下面这行代码最好写在setTimeout里面设置延时3到5秒再执行）
							uni.navigateTo({
								url: '/uni_modules/rt-uni-update/components/rt-uni-update/rt-uni-update?obj=' +
									JSON.stringify(res.data.data)
							});
						}
					} else {

						// 如果是手动检查新版本 需开启以下注释
						/* uni.showModal({
							title: '提示',
							content: '已是最新版本',
							showCancel: false
						}) */
					}
				},
				fail: (err) => {
					console.log('失败:', err);
					reject(false);
				}
			})
		})
		//#endif
	});
}
